Adaptive transmit window control mechanism for packet transport in a universal port or multi-channel environment

ABSTRACT

The transmit window size of a SPRT protocol packet transmission system can determine the efficiency of transmission and the memory requirements of the transmitter. A sufficiently large transmit window must be maintained to avoid transmission waits which can reduce the utilization of available transmission path bandwidth. However, an oversize window will require excess buffer capacity and therefore utilize additional storage space on the transmitter. A balance in window size is dynamically achieved through monitoring of the buffer write operations to determine the accessability of the window buffer based upon packet transmission utilization and packet consumption acknowledgement.

CROSS REFERENCE TO RELATED APPLICATIONS None FIELD OF THE INVENTION

[0001] The present invention relates to packet flow control in atransport layer protocol. More specifically, the present inventionrelates to the reduction of the size of a transmit window in a SPRTprotocol to improve the utilization of a shared transmit buffer.

BACKGROUND OF THE INVENTION

[0002] Simple Protocol Reliable Transport (SPRT) is a reliable transportprotocol designed for IP networks. The SPRT protocol uses a windowingmechanism for flow control. The protocol establishes a transmit windowsize which requires an allocation of a corresponding transmit bufferspace. The transmitter sends packets which are received into the receivebuffer. Receipt of the packets is acknowledged to the sender. As thepackets are retrieved from the receive buffer, they are consumed by therecipient and the consumption of packets is acknowledged to the sender.

[0003] The SPRT protocol restricts the size of the transmit window,preventing the transmitter from sending more than the number of packetsallocated to the window size (N_(wnd)) without receipt of consumptionacknowledgment from the receiver. The transmit buffer will fill to thesize of the transmit window and send packets to the network at theappropriate network rate. The transmitter continues to send packets fromthe buffer and continues to refill the buffer as long as a consumptionacknowledgment is received. Once the transmitter sends a number ofpackets equal to N_(wnd) without receipt of a consumptionacknowledgment, the transmit buffer will refill but will not transmituntil a consumption acknowledgment is received. If the transmit windowis too small, the IP link will have idle periods where no packets aretransmitted after the transmit window is emptied, while the transmitteris waiting for a consumption acknowledgment. The transmitter must waitfor receipt of an acknowledgment before it can send additional packets.

[0004] In order to fully utilize the IP capacity, without idle transmittimes, the transmit window must be large enough to continue transmittinguntil consumption acknowledgment is received. If the transmit window isexhausted before a consumption acknowledgment is received, thentransmission will stop, waiting for a consumption acknowledgment, thuswasting bandwidth.

[0005] Because an undersized window will waste bandwidth, large windowsare more often implemented in order to avoid wasted bandwidth. However,a large window will consume additional memory space in the sender. Awindow which is larger than appropriate for the network and data rate,will provide no performance benefits. Because memory requirement forbuffering transmission packets are substantial, it is desirable to limitthe window size to the smallest possible value without losingperformance.

SUMMARY OF THE INVENTION

[0006] An object of the present invention is to optimize the size of thetransmit window in a SPRT packet protocol to maximize bandwidthutilization while minimizing buffer capacity requirements.

[0007] The SPRT protocol is defined to use a maximum window sizeN_(max). The size of the window for any particular connection isnegotiated between the remote ends. Large arbitrary default values areset in the SPRT standard to avoid the use of undersized windows, therebywasting bandwidth. In most connections, it is probable that the defaultvales will be the only values commonly used. Use of unnecessarily largewindow values will place a high demand on memory which will be requiredto support the window size.

[0008] The present invention introduces a dynamic transmit window in thetransmitter that is contained within the range of 1 to N_(max).Reduction in the size of the transmit window below N_(max) will have noeffect on the receiver.

[0009] The size of the transmit window, the optimal value of N_(wnd),(designated N_(cur) to denote the current window size which is between1≦N_(cur)≦N_(max)) is determined based on network delay measured asround trip time RTT, network packet loss and source data rate R_(src).In order to fully utilize the IP link, the transmit window size must beat least as large as the RTT:

W≧RTT*R _(src)

[0010] Where W is the window capacity expressed in bits.

[0011] In the simple case, where each packet has the same length (L)than:

W=L*N _(wnd)

[0012] For example, if the RTT is one second and the R_(src) is 100bits/sec, then the minimum transmit window size will be 100 bits becauseit will take at least one second for acknowledgment of the consumptionof the first bit to be received by the transmitter, even if the firstbit is immediately consumed. However, if the window is exactly matchedto the RTT and R_(src) than any slight change in network conditions willresult in an undersize or oversize of the transmit window. Therefore thepresent invention teaches an algorithm for monitoring the widow sizeduring transmission and dynamically adjusting the widow size andcorresponding allocated memory space as needed.

[0013]FIG. 1 illustrates a transmit buffer having storage capacity forten packets number 1 through 10. If the transmit window is set to ten,then a single transmit window will consume the available memory space.However, it is desirable to share buffer space in a transmitter amongseveral transmit windows operating in a multiple channel environment oruniversal port environment. If, after transmission of packets 1, 2, 3and 4, as illustrated in FIG. 1, the receiver consumes packet 1 andsends a consumption acknowledgment to the transmitter 10, the transmitwindow does not need to be any greater than five packets. By limitingthe transmit window to five packets, the available buffer space intransmit buffer 10 can accommodate two channels.

[0014]FIG. 2 illustrates the delay, or underutilization of the availablebandwidth which can occur if the window size is too small. In FIG. 2,the available buffer space allocated to a window is two packets.Therefore, once packets 1 and 2 have been transmitted, the transmittermust wait two cycles for a consumption acknowledgment before sending thethird packet.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Exemplary embodiments of the present invention are discussed withreference to the following drawings:

[0016]FIG. 1 is a block diagram illustrating representative transmit andreceive buffers.

[0017]FIG. 2 is a block diagram illustrating the use of an undersizedtransmit window.

[0018]FIG. 3 is a logical flow diagram illustrating the dynamic windowsize adaption of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0019] The function used to send a packet via SPRT can be stated as:

bool send(int size, char*buf)

[0020] This function will return a true value if the packet wassuccessfully placed in the transmit queue. The function fails if thetransmit queue is full, ie the transmit window is exhausted. The presentinvention, as illustrated in FIG. 3, also has a counter function totrack the number of successes and failures of the attempts to place sendpackets in to the send buffer. If no failures occur, than the transmitwindow is sufficiently large. However, this is not an indication thatthe link utilization is 100%, which may not be required if the sourcerate is sufficiently low so as not to require full bandwidthutilization.

[0021] The present invention reduces the window size, without decreasingthe data rate, by modification of the window size based upon thedetection and tracking of window write failures. Typically, a minimumnumber of write failures may be experienced even when the window size issufficiently large. The present invention therefore sets a thresholdvalue for the number of acceptable failures in a given measured periodof time. This threshold value is referred to as the downsize threshold.If the number of failures detected in a given period of time is belowthe downsize threshold, then the size of the window can be decreased.

[0022] The present invention also sets a threshold value for the numberof unacceptable failures in a given period of time. This threshold valueis referred to as the upsize threshold. If the number of failures for aparticular size window exceeds the upsize threshold, then the window istoo small and needs to be increased.

[0023] Because many varying and different embodiments may be made withinthe scope of the inventive concept herein taught, and because manymodifications may be made in the embodiments herein detailed inaccordance with the descriptive requirements of the law, it is to beunderstood that the details herein are to be interpreted as illustrativeand not in a limiting sense.

What is claimed is:
 1. A method for dynamic configuration of the size ofa dynamic transmit window in the transmitter of a SPRT messagecommunication system, comprising: establishing a minimum window sizevalue and a maximum window size value; constraining said dynamictransmit window between said minimum size value and said maximum sizevalue; monitoring packet consumption acknowledgment as a reflection ofcurrent round trip time of travel of a packet transmitted in saidcommunication system; determining the size of said dynamic transmitwindow based upon said monitored packet consumption acknowledgment andthe data rate of said packet, where the data rate is established in bitsper unit time and the dynamic window size is equal to the data ratetimes the length of said current reflected round trip time.
 2. Themethod of claim 1, wherein said size determination is: contained withinthe range of 1 to N_(max) for the optimal value of N_(cur) between1≦N_(cur)≦N_(max); said value determined based on network delay RTT,network packet loss and source data rate R_(arc); at least as large asthe RTT where: W≧RTT*R_(src), and where W is the window capacityexpressed in bits.
 3. The method of claim 1, further comprising thesteps of: detecting wait cycles during which no information istransmitted from said dynamic transmit window while awaiting consumptionacknowledgment; monitoring delay or wait times and the absence of delayor wait times in said dynamic widow during transmission; and dynamicallyadjusting said widow size and corresponding allocated memory space asneeded, based upon said monitoring.
 4. The method of claim 3, furtherincluding the step of: matching said dynamic window size to saidreflection of said round trip time and said data rate prior to saidsteps of detecting and monitoring.
 5. The method of claim 3, furthercomprising the steps of: increasing the size of said dynamic window whenthe number of wait cycles within a predetermined time period exceed athreshold.
 6. The method of claim 3, further comprising the steps of:monitoring the full state of said dynamic transmit window; anddecreasing the size of said dynamic window when the dynamic transmitwindow is in a partial full state for a percentage of time exceeding apredetermined threshold.
 7. A method for dynamic configuration of thesize of a dynamic transmit window in the transmitter of a SPRT messagecommunication system, comprising: establishing a dynamic transmit bufferconnected to a network; transmitting packets from said transmit buffer,across said network to a receiver; receiving consumption acknowledgmentof said packets from said receiver; monitoring the round trip time oftravel of said packets based upon the difference between saidtransmission time and said consumption acknowledgment time; determiningthe date transmission rate of said communication network; determiningthe size of said dynamic transmit buffer based upon said monitored roundtrip time and said data rate of said packet established in bits per unittime, and the dynamic window size is equal to the data rate times thelength of said measured the round trip time; and wherein said size isestablished to allow said buffer to contain sufficient packets tocontinue transmission of said last packet at the time that saidconsumption acknowledgment of said first packet is receiver at saidtransmitter.
 8. A method for dynamic configuration of the size of adynamic transmit window in the transmitter of a SPRT messagecommunication system, comprising: monitoring packet rejection by thedynamic transmit window; determining the current rate of packetrejection; reducing said window size of said dynamic transmit window,based upon said determined current rate of packet rejection by saiddynamic transmit window; increasing the window size of said dynamaictransmit window, based upon said determined current rate of packetrejection by said dynamic transmit window.
 9. The method of claim 8,wherein: said reduction of said window size is implemented when thecurrent rate of packet rejection is below a downsize threshold.
 10. Themethod of claim 8, wherein said increase in said window size isimplemented the current rate of packet rejection exceeds an upsizethreshold.